PDF ফরম্যাটে কনভার্ট করা

Java Technologies - অ্যাপাচি পিওআই (Apache POI) - File Export এবং PDF Conversion
192

Apache POI সরাসরি Word বা Excel ডকুমেন্টকে PDF ফরম্যাটে কনভার্ট করার জন্য কোন API সরবরাহ করে না। তবে, আপনি Apache POI এবং অন্য কিছু লাইব্রেরি ব্যবহার করে এই কনভার্টিং প্রক্রিয়া সম্পাদন করতে পারেন। এর মধ্যে একটি জনপ্রিয় পদ্ধতি হলো Apache FOP (Formatting Objects Processor) এবং iText লাইব্রেরির মাধ্যমে POI ডকুমেন্টকে PDF এ কনভার্ট করা।

এখানে আমরা দেখব কিভাবে Apache POI ডকুমেন্টকে PDF ফরম্যাটে কনভার্ট করা যায়।


1. Apache POI থেকে PDF কনভার্ট করার জন্য উপকরণ

কনভার্ট করার জন্য সাধারণত দুটি প্রধান লাইব্রেরি ব্যবহার করা হয়:

  • Apache POI: Word, Excel, PowerPoint ফাইল প্রক্রিয়া করার জন্য।
  • iText: PDF ফাইল তৈরি এবং কাস্টমাইজেশনের জন্য।

2. iText লাইব্রেরি ব্যবহার করে POI ডকুমেন্ট PDF তে কনভার্ট করা

iText হল একটি জনপ্রিয় ওপেন সোর্স লাইব্রেরি যা PDF তৈরি ও সম্পাদনা করতে ব্যবহৃত হয়। এটি Apache POI ডকুমেন্টের কনটেন্টকে PDF ফরম্যাটে রেন্ডার করতে সাহায্য করে।

উদাহরণ: POI ডকুমেন্টকে PDF ফরম্যাটে কনভার্ট করা

এই উদাহরণে Apache POI এর XWPFDocument (Word ডকুমেন্ট) কে iText ব্যবহার করে PDF এ কনভার্ট করা হয়েছে।

import com.itextpdf.text.*;
import com.itextpdf.text.pdf.PdfWriter;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class ConvertWordToPDF {
    public static void main(String[] args) throws Exception {
        // Word ডকুমেন্ট লোড করা
        FileInputStream fis = new FileInputStream("input_word_file.docx");
        XWPFDocument document = new XWPFDocument(fis);

        // iText PDF ডকুমেন্ট তৈরি করা
        Document pdfDocument = new Document();
        PdfWriter.getInstance(pdfDocument, new FileOutputStream("output_pdf_file.pdf"));
        
        pdfDocument.open();
        
        // POI ডকুমেন্টের প্যারাগ্রাফ গুলোকে PDF ডকুমেন্টে যোগ করা
        for (XWPFParagraph paragraph : document.getParagraphs()) {
            pdfDocument.add(new Paragraph(paragraph.getText()));
        }

        // PDF ডকুমেন্ট বন্ধ করা
        pdfDocument.close();
        fis.close();
    }
}

এখানে:

  • XWPFDocument ব্যবহার করে Word ফাইলটি লোড করা হয়েছে।
  • iText লাইব্রেরি দিয়ে একটি নতুন PDF ডকুমেন্ট তৈরি করা হয়েছে।
  • getParagraphs() মেথড ব্যবহার করে Word ডকুমেন্টের প্যারাগ্রাফগুলো PDF ডকুমেন্টে যোগ করা হয়েছে।

3. Apache POI + Apache FOP ব্যবহার করে PDF কনভার্ট করা

Apache FOP (Formatting Objects Processor) হল একটি ওপেন সোর্স ফ্রেমওয়ার্ক যা XML ডেটাকে বিভিন্ন আউটপুট ফরম্যাটে কনভার্ট করতে ব্যবহৃত হয়, যেমন PDFApache POI এর সাথে Apache FOP ব্যবহার করে আপনি Word অথবা Excel ফাইলকে PDF এ কনভার্ট করতে পারেন।

উদাহরণ: POI ডকুমেন্টকে FOP ব্যবহার করে PDF তে কনভার্ট করা

import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.xmlgraphics.xmp.Metadata;
import org.apache.fop.apps.*;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class POIToPDFUsingFOP {
    public static void main(String[] args) throws Exception {
        // Word ফাইল লোড করা
        FileInputStream fis = new FileInputStream("input_word_file.docx");
        XWPFDocument document = new XWPFDocument(fis);

        // FOP সিস্টেম কনফিগারেশন সেট করা
        FopFactory fopFactory = FopFactory.newInstance(new java.io.File("fop.xconf"));
        FileOutputStream out = new FileOutputStream("output_pdf_using_fop.pdf");

        // FOP প্রসেসর তৈরি করা
        Fop fop = fopFactory.newFop(MimeConstants.MIME_PDF, out);

        // FOP এক্সএমএল ডেটা প্রসেসিং
        // (এখানে XML ডেটা তৈরি করা এবং FOP কনভার্ট করা হবে)
        
        // Word ডকুমেন্ট থেকে টেক্সট বের করা
        for (XWPFParagraph paragraph : document.getParagraphs()) {
            System.out.println(paragraph.getText());  // Word টেক্সট প্রিন্ট করা
        }

        // ফাইল স্ট্রিম বন্ধ করা
        out.close();
        fis.close();
    }
}

এখানে:

  • FopFactory এবং Fop ব্যবহার করে FOP কনভার্টার তৈরি করা হয়েছে।
  • Apache POI ডকুমেন্টের টেক্সট FOP প্রসেসরের মাধ্যমে PDF তে কনভার্ট করার জন্য প্রস্তুত করা হয়েছে।

4. ফাইল সাইজ এবং পারফরমেন্স অপটিমাইজেশন

যেহেতু PDF কনভার্ট করা সাধারণত কিছুটা ভারী কাজ, তাই যদি ফাইল বড় হয় বা অনেক ফর্ম্যাটিং থাকে, তাহলে কিছু পারফরমেন্স অপটিমাইজেশন করা উচিত। এখানে কিছু সাধারণ টিপস:

  • Streaming ব্যবহার করুন বড় ডকুমেন্টগুলোর জন্য যাতে সিস্টেম রেসোর্সগুলো একসাথে না চলে যায়।
  • Compression ব্যবহার করুন, বিশেষত চিত্র এবং মিডিয়া ফাইলগুলো কম্প্রেস করার জন্য।
  • Memory management ভালোভাবে করুন যাতে Java heap খুব দ্রুত ফিল না হয়ে যায়।

সারাংশ

Apache POI সরাসরি PDF কনভার্ট করার জন্য একটি সম্পূর্ণ সমাধান প্রদান করে না, তবে আপনি iText বা Apache FOP এর মতো লাইব্রেরি ব্যবহার করে Word বা Excel ফাইলগুলোকে PDF তে কনভার্ট করতে পারেন। iText সাধারণত Word ডকুমেন্টের Text কনভার্ট করার জন্য ব্যবহার করা হয়, যেখানে Apache FOP XML এবং অন্যান্য ডেটা কনভার্ট করার জন্য কার্যকর।

এই কনভার্সন প্রক্রিয়া Java এ দক্ষভাবে করা যায় এবং আপনি যদি POI এবং অন্যান্য লাইব্রেরির সঠিকভাবে ব্যবহার করেন, তবে খুবই সহজেই PDF ফাইল তৈরি করতে পারবেন।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...